package org.session.repository.hdfs;

import java.util.Map;
import java.util.Properties;
import java.util.concurrent.Future;

import org.session.model.AddEntryToSessionRequest;
import org.session.model.CreateSessionRequest;
import org.session.model.DeleteKeyFromSessionRequest;
import org.session.model.DeleteSessionRequest;
import org.session.model.EndSessionRequest;
import org.session.model.GetEntriesFromSessionRequest;
import org.session.model.GetEntryFromSessionRequest;
import org.session.model.ReplaceEntryInSessionRequest;
import org.session.model.RepositoryType;
import org.session.model.SearchSessionRequest;
import org.session.model.Session;
import org.session.model.SessionEntry;
import org.session.service.RequestThrottlerInterceptor;
import org.session.util.PropertyLoader;

/**
 * TODO: implement me
 */
public final class HDFSProxyAdapter extends RequestThrottlerInterceptor {
    private static final HDFSConnectionManager connectionManager = HDFSConnectionManager
            .getInstance();
    private static final Properties properties = PropertyLoader
            .getAllProperties("hdfs.properties");

    @Override
    public RepositoryType getRepositoryType() {
        return RepositoryType.HDFS;
    }

    @Override
    public Future<Boolean> pingRepository() {
        throw new UnsupportedOperationException();
    }

    @Override
    public Future<Boolean> shutdownRepository() {
        throw new UnsupportedOperationException();
    }

    @Override
    protected Future<Session> createSession(final CreateSessionRequest request) {
        throw new UnsupportedOperationException();
    }

    @Override
    protected Future<Boolean> endSession(final EndSessionRequest request) {
        throw new UnsupportedOperationException();
    }

    @Override
    protected Future<Boolean> deleteSession(final DeleteSessionRequest request) {
        throw new UnsupportedOperationException();
    }

    @Override
    protected Future<Session> searchSession(final SearchSessionRequest request) {
        throw new UnsupportedOperationException();
    }

    @Override
    protected Future<Boolean> addEntryToSession(
            final AddEntryToSessionRequest request) {
        throw new UnsupportedOperationException();
    }

    @Override
    protected Future<Boolean> replaceEntryInSession(
            final ReplaceEntryInSessionRequest request) {
        throw new UnsupportedOperationException();
    }

    @Override
    protected Future<SessionEntry> getEntryFromSession(
            final GetEntryFromSessionRequest request) {
        throw new UnsupportedOperationException();
    }

    @Override
    protected Future<Map<String, SessionEntry>> getEntriesFromSession(
            final GetEntriesFromSessionRequest request) {
        throw new UnsupportedOperationException();
    }

    @Override
    protected Future<Boolean> deleteKeyFromSession(
            final DeleteKeyFromSessionRequest request) {
        throw new UnsupportedOperationException();
    }

}
